from rest_framework.permissions import BasePermission

SAFE_METHODS = ('GET', 'HEAD', 'OPTIONS')


class IsAdminOrReadOnly(BasePermission):
    """
    自定义对象权限，只允许项目的admin修改项目，未登录或者其他用户只读权限
    """

    def has_permission(self, request, view):
        # 判断用户是否是管理员 管理员有权限
        if request.user and request.user.is_authenticated and request.user.is_staff:
            return True
        else:
            # 不是管理员 但是get请求 则可以查看
            if request.method in SAFE_METHODS:
                return True
            else:
                return False
